package com.zdxf.mapper;


import com.zdxf.domain.MenuDO;
import com.zdxf.domain.UpdatePasswordDTO;
import com.zdxf.domain.UserDO;
import com.zdxf.domain.UserRoleDO;
import com.zdxf.param.RoleParam;
import com.zdxf.param.UserParam;
import com.zdxf.util.Result;
import org.apache.ibatis.annotations.Mapper;

import java.util.List;
import java.util.Map;


@Mapper
public interface UserMapper {
    /**
     * 查询用户列表
     */
    List<UserRoleDO> getAllRoles();

    /**
     * 查询用户列表
     */
    List<UserRoleDO> listRole(RoleParam roleParam);

    int getListRoleCount();

    /**
     * 新增角色
     */
    int addRole(UserRoleDO userRole);

    /**
     * 检测角色是否重复
     */
    UserRoleDO checkRole(UserRoleDO userRole);

    /**
     * 修改角色
     */
    int updateRole(UserRoleDO userRole);

    /**
     * 删除角色
     */
    int deleteRole(long roleId);

    /**
     * 获取在使用角色的用户
     */
    List<UserRoleDO> getUseRole(long roleId);


    /**
     * 查询用户列表
     */
    List<UserDO> userList(UserParam userParam);

    int getListUserCount(UserParam userParam);

    /**
     * 新增用户
     */
    int addUser(UserDO userDO);

    /**
     * 检测角色是否重复
     */
    UserDO checkUser(UserDO userDO);

    /**
     * 编辑用户
     */
    int updateUser(UserDO userDO);

    /**
     * 获取用户详情
     */
    UserDO getInfo(String username);
    UserDO getInfoById(Long userId);
    /**
     * 获取用户菜单
     */
    List<MenuDO> getUserMenu(UserDO userDO);
    int updatePassword(UpdatePasswordDTO updatePasswordDTO);

}
